package com.ly.heart.domain;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.ly.common.core.domain.BaseVo;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;

import java.util.Date;

/**
 * <p>
 * 项目
 * </p>
 * @author WuZH
 * @since 2024-05-14
 */
@Getter
@Setter
@TableName ("erp_project_info")
@ApiModel (value = "项目", description = "项目")
@Accessors(chain = true)
public class ProjectEntity extends BaseVo {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty ("id")
    @TableId (value = "id", type = IdType.INPUT)
    private String id;

    @ApiModelProperty ("子公司Id")
    @TableField ("dept_id")
    private String deptId;

    @ApiModelProperty ("所属客户Id")
    @TableField ("customer_id")
    private String customerId;

    @ApiModelProperty ("项目类型Id")
    @TableField ("project_type_id")
    private String projectTypeId;

    @ApiModelProperty ("项目名称")
    @TableField ("project_name")
    private String projectName;

    @ApiModelProperty ("项目编码")
    @TableField ("project_code")
    private String projectCode;

    @ApiModelProperty ("项目内容Id")
    @TableField ("project_content_id")
    private String projectContentId;

    @ApiModelProperty ("项目估算金额")
    @TableField ("project_estimate")
    private String projectEstimate;

    @ApiModelProperty ("项目所在地")
    @TableField ("address")
    private String address;

    @ApiModelProperty ("投标时间")
    @TableField ("tender_time")
    private Date tenderTime;

    @ApiModelProperty ("立项时间")
    @TableField ("confirm_time")
    private Date confirmTime;

    @ApiModelProperty ("联系人")
    @TableField ("contacts_id")
    private String contactsId;

    @ApiModelProperty ("联系人电话")
    @TableField ("contacts_phone")
    private String contactsPhone;

    @ApiModelProperty ("联系人职位")
    @TableField ("contacts_position")
    private String contactsPosition;

    @ApiModelProperty ("联系人部门")
    @TableField ("contacts_dept_id")
    private String contactsDeptId;

    @ApiModelProperty ("我方负责人Id")
    @TableField ("responsible_user_id")
    private String responsibleUserId;

    @ApiModelProperty ("关系度;1:不认识;2:初识;3:普通;4:要好;5:密切")
    @TableField ("degree")
    private Integer degree;

    @ApiModelProperty ("建设方付款方式;1:分期;2:垫资;3:全款")
    @TableField ("pay_type")
    private Integer payType;

    @ApiModelProperty ("建设方财务状况;1:优;2:良;3:不好;4:未知")
    @TableField ("financial_condition")
    private Integer financialCondition;

    @ApiModelProperty ("甲方对我方认可度;1:高;2:中;3:低;4:未知")
    @TableField ("party_to_recognition")
    private Integer partyToRecognition;

    @ApiModelProperty ("乙方对甲方认可度;1:高;2:中;3:低;4:未知")
    @TableField ("recognition_to_party")
    private Integer recognitionToParty;

    @ApiModelProperty ("战略意义;1:持续合作;2:潜力;3:样板示范")
    @TableField ("strategic")
    private Integer strategic;

    @ApiModelProperty ("项目所属行业Id")
    @TableField ("industry_id")
    private String industryId;

    @ApiModelProperty ("招标方式，1：公开招标；2：邀标；3：仪标")
    @TableField ("tendering_type")
    private Integer tenderingType;

    @ApiModelProperty ("单位性质/客户属性")
    @TableField ("customer_attr_id")
    private String customerAttrId;

    @ApiModelProperty ("项目开始时间")
    @TableField ("start_time")
    private Date startTime;

    @ApiModelProperty ("项目交付时间")
    @TableField ("end_time")
    private Date endTime;

    @ApiModelProperty ("项目状态：1：项目立项；2：项目实施；3：项目完成；4：项目终止")
    @TableField ("status")
    private String status;

    @ApiModelProperty ("流程实例id")
    @TableField ("instance_id")
    private String instanceId;

    @ApiModelProperty ("审批状态")
    @TableField ("approval_status")
    private String approvalStatus;

    @ApiModelProperty ("创建人Id")
    @TableField ("create_by")
    private String createBy;

    @ApiModelProperty ("创建时间")
    @TableField ("create_time")
    private Date createTime;

    @ApiModelProperty ("更新人Id")
    @TableField ("update_by")
    private String updateBy;

    @ApiModelProperty ("更新时间")
    @TableField ("update_time")
    private Date updateTime;

    @TableField ("is_used")
    private Integer isUsed;

    @TableField(exist = false)
    private String deptName; //关联子公司/部门名称

    @TableField(exist = false)
    private String customerName; //客户姓名

    @ApiModelProperty("业务type")
    @TableField (exist = false)
    private String businessType;

    @ApiModelProperty("流程模型id")
    @TableField (exist = false)
    private String modelId;

}
